<template>
	<li>
		<label>
			<!-- 第5行是使用v-model进行双向数据绑定，利用了Vue监测不到props传递过来的对象中属性的修改 -->
			<!-- <input type="checkbox" v-model="todo.done"/> -->
			<input type="checkbox" :checked="todo.done" @click="handleCheck(todo.id,$event)"/>
			<span>{{todo.title}}</span>
		</label>
		<button class="btn btn-danger" @click="handleDelete(todo.id)">删除</button>
	</li>
</template>

<script>
	export default {
		name: 'Item',
		props:['todo','deleteTodo','checkTodo'],
		methods: {
			//删除按钮的回调
			handleDelete(id){
				if(confirm('确认删除吗？')){
					this.deleteTodo(id)
				}
			},
			//勾选 or 取消勾选的回调
			handleCheck(id,e){
				// console.log(id,e.target.checked)
				this.checkTodo(id,e.target.checked)
			}
		},
	}
</script>

<style scoped>
	/*item*/
	li {
		list-style: none;
		height: 36px;
		line-height: 36px;
		padding: 0 5px;
		border-bottom: 1px solid #ddd;
	}

	li label {
		float: left;
		cursor: pointer;
	}

	li label li input {
		vertical-align: middle;
		margin-right: 6px;
		position: relative;
		top: -1px;
	}

	li button {
		float: right;
		display: none;
		margin-top: 3px;
	}

	li:before {
		content: initial;
	}

	li:last-child {
		border-bottom: none;
	}

	li:hover{
		background-color: #ddd;
	}

	li:hover .btn-danger{
		display: block;
	}
</style>